-
Notifications
You must be signed in to change notification settings - Fork 768
[SYCL] Remove secondary submission queue from handler #17967
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@jbrodman FYI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
Files not reviewed (3)
- sycl/source/detail/handler_impl.hpp: Language not supported
- sycl/source/handler.cpp: Language not supported
- sycl/unittests/SYCL2020/KernelBundle.cpp: Language not supported
sycl/source/detail/handler_impl.hpp
Outdated
bool EventNeeded) | ||
handler_impl( | ||
std::shared_ptr<queue_impl> SubmissionPrimaryQueue, | ||
[[maybe_unused]] std::shared_ptr<queue_impl> SubmissionSecondaryQueue, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason to keep the secondary queue argument in handler_impl? Can we remove it here, and just keep it in the handler for ABI compatibility?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good idea. Applied in 14dc5ac
sycl/source/handler.cpp
Outdated
return false; | ||
} | ||
return true; | ||
assert(impl->MSubmissionPrimaryQueue && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@slawekptak Since the last review, I've also removed null check and converted to assert instead. It's unlikely to have a null primary queue in handler.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the info. Let me share one more thought/question. It seems like handler_impl can be constructed using a graph instead of queues. In this case, this function (and other 2) used to return true, now they would crash/assert. The question is, are these functions used at all with the graph version of the handler? Please note that the use_kernel_bundle function would check if the graph is there, and in this case get the context from the graph instead of the queue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like handler_impl can be constructed using a graph instead of queues.
I didn't know that handler_impl ca be constructed using a graph. You're right, we should not assert in that case. My whole assumption was that we can't have a handler without a queue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@slawekptak I've re-added the null check in 0757546
Follow up of #17967 Secondary submission queue is optional in SYCL Spec and it has been decided to remove it.
handler's secondary queue is not used for any meaningful work.